﻿var hashmethods = new Array();
var popup;
var requestingArticulo = false, idFunctionResetRequestingArticulo;

function SetRequestingArticulo()
{
    requestingArticulo = true;
    deshabilitarTextboxesCantidad(true);
    idFunctionResetRequestingArticulo = window.setTimeout(ResetRequestingArticulo, 3000);
}

function ResetRequestingArticulo()
{
    requestingArticulo = false;
    deshabilitarTextboxesCantidad(false);
    window.clearTimeout(idFunctionResetRequestingArticulo);
}

function IsAllowRequestArticulo()
{
     return !requestingArticulo;
}

function ChangeTextMultipleExplorers(id, val)
{
    if (document.all)
    {
        document.getElementById(id).innerText = val;
    }
    else
    {
        document.getElementById(id).textContent = val;
    }
}


function OnLoad()
{
    window.focus();
}

var PecControlUniqueID = "";

function DivCentralAsignarHtml(html)
{
    try
    {
    if (typeof html != "undefined" && html != null)
    {
        divCentral.innerHTML = html;
        //Seteo el PecControlUniqueID.
        PecControlUniqueID = "";
    }
    }
    catch(ex)
    {
    alert(ex.description);
    }
}

function MostrarBusqueda()
{
    if (busy())
    {
        var tbBuscar = document.getElementById(tbBuscarId).value;
        if (tbBuscar!="")
        {
            var resultado;
            try
            {
                tbBuscar = tbBuscar.replace("´", "*");
                tbBuscar = tbBuscar.replace(/%/g, "");
                
                if (tbBuscar != "")
                {
                    hashmethods[_MasterPages_Home.url + ".MostrarBuscador"] = function(r){
                         if (ErrorEnResponse(r))
                         {
                            idle();
                            return;
                         }
                         DivCentralAsignarHtml(r.value);
                         MostrarBannersPublicidadSector(8);
                         
                    };
                    resultado = _MasterPages_Home.MostrarBuscador(tbBuscar);
                   
                }
                else
                {
                    idle();
                    return;
                }
            }
            catch (ex)
            {
                ManejarError();
                idle();
                return;
            }
        }
        idle();
    }   
}

function MostrarHome()
{
    if (busy())
    {
        var resultado;
        try
        {
            hashmethods[_MasterPages_Home.url + ".MostrarHome"] = function(r){
                        if (ErrorEnResponse(r))
                        {
                            return;
                        }
                        DivCentralAsignarHtml(r.value);
                        
                    };
            resultado = _MasterPages_Home.MostrarHome();
            
        }
        catch (ex)
        {
            ManejarError();
            return;
        }
        idle();
    }
    
    MostrarBannersPublicidadSector(2);
}

function MostrarPedidosAnteriores()
{
    if (busy())
    {
        var resultado;
        try
        {
            hashmethods[_MasterPages_Home.url + ".MostrarPedidosAnteriores"] = function(r){
                            if (ErrorEnResponse(r))
                            {
                                return;
                            }
                            if(r.value=="false")
                            {
                                alert("No posee pedidos realizados previamente.");
                            }
                            else
                            {
                                DivCentralAsignarHtml(r.value);
                            }
                   };
            resultado = _MasterPages_Home.MostrarPedidosAnteriores();
        }
        catch (ex)
        {
            alert(ex.description);
            ManejarError();
            return;
        }
        idle();
    }
    
    MostrarBannersPublicidadSector(6);
}
function MostrarMisListas(idLista)
{
     var resultado;
    try
    {
        hashmethods[_MasterPages_Home.url + ".MostrarMisListas"] = function(r){
                       if (ErrorEnResponse(r))
                       {
                           return;
                       }
                       DivCentralAsignarHtml(r.value);
                       if(typeof idLista != "undefined")
                       {
                           MisListasNombreModificacion(idLista,leyenda);
                       }
                       MostrarBannersPublicidadSector(9);
               };
               
        resultado = _MasterPages_Home.MostrarMisListas((typeof idLista != "undefined"));
        
        
    }
    catch (ex)
    {
        alert(ex.description);
        ManejarError();
        return;
    }  
}

function MostrarPedidoDetalle(idPedido)
{
    if (busy())
    {
        var resultado;
        try
        {
            hashmethods[_MasterPages_Home.url + ".MostrarPedidoDetalle"] = function(r){
                             if (ErrorEnResponse(r))
                            {
                                return;
                            }
                           DivCentralAsignarHtml(r.value);
                          };
            resultado = _MasterPages_Home.MostrarPedidoDetalle(idPedido);
           
        }
        catch (ex)
        {
            ManejarError();
            return;
        }
        idle();
    }
    
    MostrarBannersPublicidadSector(7);
}

function MostrarPedidoActualizacion(idPedido)
{
    if (busy())
    {
        var resultado;
        try
        {
            //actualizar el carrito actual con el pedido especificado
            hashmethods[_MasterPages_Home.url + ".MostrarPedidoActualizacion"] = function(r){
                          //actualiza divCentral con pec
                          if (ErrorEnResponse(r))
                        {
                            return;
                        }
                          DivCentralAsignarHtml(r.value);
                   };
            resultado = _MasterPages_Home.MostrarPedidoActualizacion(idPedido);
            
        }
        catch (ex)
        {
            ManejarError();
            return;
        }       
        //obtener datos para recargar el carrito
        var actualizarCarritoResponse;
        try
        {   
            hashmethods[_MasterPages_Home.url + ".RecargarCarrito"] = function(r){
                        if (ErrorEnResponse(r))
                         {
                            return;
                          }
                          RecargarCarrito(r);
                   };
            actualizarCarritoResponse = _MasterPages_Home.RecargarCarrito();
        }
        catch (ex)
        {
            ManejarError();
            return;
        }              
        idle();
    }
}

function MostrarPedidoModificacion(idPedido)
{
    if (busy())
    {
        AbrirPopUp(webSiteRoot + "/Comprar/PedidoModificacionCondiciones.aspx", "PedidoModificacionCondiciones", 520, 280);        


        try
        {
            hashmethods[_MasterPages_Home.url + ".MostrarPedidoModificacion"] = function(r) {
                if (ErrorEnResponse(r))
                {
                    return;
                }
                DivCentralAsignarHtml(r.value);

                //obtener datos para recargar el carrito
                try
                {
                    hashmethods[_MasterPages_Home.url + ".RecargarCarrito"] = function(res) {
                        if (ErrorEnResponse(res))
                        {
                            return;
                        }
                        RecargarCarrito(res);
                    };
                    _MasterPages_Home.RecargarCarrito();
                   
                }
                catch (ex)
                {
                    ManejarError();
                    return;
                }
            };
            
            _MasterPages_Home.MostrarPedidoModificacion(idPedido);
        }
        catch (ex)
        {
            ManejarError();
            return;
        }
        
        //actualiza combo del carrito        
        idle();
    }
}
function MostrarMiListaModificacion(idMiLista)
{
    if (busy())
    {
        try
        {
            hashmethods[_MasterPages_Home.url + ".MostrarMiListaModificacion"] = function(r) {
                if (ErrorEnResponse(r))
                {
                    return;
                }
                DivCentralAsignarHtml(r.value);
            };
            
            _MasterPages_Home.MostrarMiListaModificacion(idMiLista);
        }
        catch (ex)
        {
            ManejarError();
            return;
        }
        
        //actualiza combo del carrito        
        idle();
        
        MostrarBannersPublicidadSector(10);
    }
}
function MostrarCarrito()
{
    if (busy())
    {
        if (document.getElementById(divCarritoId).innerHTML == CarritoVacioLeyenda)
        {
            alert("Debe comprar algún artículo");
        }
        else
        {
            var resultado;
            try
            {
                hashmethods[_MasterPages_Home.url + ".MostrarCarrito"] = function(r){
                        if (ErrorEnResponse(r))
                        {
                            return;
                        }
                        DivCentralAsignarHtml(r.value);
                };
                resultado = _MasterPages_Home.MostrarCarrito();
                
                                
            }
            catch (ex)
            {
                ManejarError();
                return;
            }
        }
        idle();
        
        MostrarBannersPublicidadSector(5);
    }
}

function MostrarGondola_callback(r)
{
    DivCentralAsignarHtml(r.value);
        
    idle();
}




//ver una gondola en el content holder central
function MostrarGondola(idMenu, onReadyFunction)
{
    if (busy())
    {
        var resultado;
        try
        {
            hashmethods[_MasterPages_Home.url + ".MostrarGondola"] = function(r)
            {
                MostrarGondola_callback(r);
                onReadyFunction();    
            }
            
            resultado = _MasterPages_Home.MostrarGondola(idMenu);          
        }
        catch (ex)
        {
            ManejarError();
            return;
        }
    }
}

//Mostrar articulo
function MArt(idArticulo, pVenta)
{
    popup = AbrirPopUp("", "MostrarArticulo", 428, 887, true);
    var form2 = document.getElementById("form2");
    form2.action = webSiteRoot + "/Comprar/ArticuloMostrar.aspx";
    form2.target = "MostrarArticulo";
    form2.IdArticulo.value = idArticulo;
    form2.PVenta.value = pVenta;
    form2.submit();
}

function MostrarPromo(idPromo, idPECListaCompraParametro)
{
    if (busy())
    {
        var resultado;
        try
        {
            hashmethods[_MasterPages_Home.url + ".MostrarPromo"] = function(r){
                    if (ErrorEnResponse(r))
                    {
                        return;
                    }
                    DivCentralAsignarHtml(r.value);
                    
               };
            resultado = _MasterPages_Home.MostrarPromo(idPromo, idPECListaCompraParametro);
        }
        catch (ex)
        {
            ManejarError();
            return;
        }
        idle();
    }
}

function PedidoNombreModificacion(idPedido, pedidoSinNombreLeyenda)
{
    var objPedidoNombreLinkTexto = document.getElementById(PecControlUniqueIDObtener() + "DivPedidoNombreLinkTexto_" + idPedido);
    var objPedidoNombre = document.getElementById(PecControlUniqueIDObtener() + "PedidoNombre_" + idPedido);

    objPedidoNombre.value = ((pedidoSinNombreLeyenda != objPedidoNombreLinkTexto.innerHTML) ? objPedidoNombreLinkTexto.innerHTML : "");
    
    var objPedidoNombreLink = document.getElementById(PecControlUniqueIDObtener() + "DivPedidoNombreLink_" + idPedido);
    var objPedidoNombreEdicionTextBox = document.getElementById(PecControlUniqueIDObtener() + "DivPedidoNombreEdicionTextBox_" + idPedido);
    var objPedidoNombreEdicionHyperLink = document.getElementById(PecControlUniqueIDObtener() + "DivPedidoNombreEdicionHyperLink_" + idPedido);

    objPedidoNombreLink.style.display = "none";
    objPedidoNombreEdicionTextBox.style.display = "";
    objPedidoNombreEdicionHyperLink.style.display = "";
}

function PedidoNombreModificacionGrabar(idPedido, pedidoSinNombreLeyenda)
{
    var objPedidoNombreLinkTexto = document.getElementById(PecControlUniqueIDObtener() + "DivPedidoNombreLinkTexto_" + idPedido);
    var objPedidoNombre = document.getElementById(PecControlUniqueIDObtener() + "PedidoNombre_" + idPedido);
    var resultado;
    try
    {
        hashmethods[_MasterPages_Home.url + ".PedidoNombreModificacion"] = function(r){
                if (ErrorEnResponse(r))
                {
                    return;
                }
                objPedidoNombreLinkTexto.innerHTML = ((r.value != "") ? r.value : pedidoSinNombreLeyenda);
    
                var objPedidoNombreLink = document.getElementById(PecControlUniqueIDObtener() + "DivPedidoNombreLink_" + idPedido);
                var objPedidoNombreEdicionTextBox = document.getElementById(PecControlUniqueIDObtener() + "DivPedidoNombreEdicionTextBox_" + idPedido);
                var objPedidoNombreEdicionHyperLink = document.getElementById(PecControlUniqueIDObtener() + "DivPedidoNombreEdicionHyperLink_" + idPedido);

                objPedidoNombreLink.style.display = "";
                objPedidoNombreEdicionTextBox.style.display = "none";
                objPedidoNombreEdicionHyperLink.style.display = "none";
           };
        resultado = _MasterPages_Home.PedidoNombreModificacion(idPedido, objPedidoNombre.value);
        
    }
    catch (ex)
    {
        ManejarError();
        return;
    }
}
function MisListasNombreModificacion(idMiLista, miListaSinNombreLeyenda)
{
    var objMiListaNombreLinkTexto = document.getElementById(PecControlUniqueIDObtener() + "DivMiListaNombreLinkTexto_" + idMiLista);
    var objMiListaNombre = document.getElementById(PecControlUniqueIDObtener() + "MiListaNombre_" + idMiLista);
    
    
    var nombreListas = "";
    objMiListaNombre.value = ((miListaSinNombreLeyenda != objMiListaNombreLinkTexto.innerHTML) ? objMiListaNombreLinkTexto.innerHTML : "");
    
    var objMiListaNombreLink = document.getElementById(PecControlUniqueIDObtener() + "DivMiListaNombreLink_" + idMiLista);
    var objMiListaNombreEdicionTextBox = document.getElementById(PecControlUniqueIDObtener() + "DivMiListaNombreEdicionTextBox_" + idMiLista);
    var objMiListaNombreEdicionDropDownList = document.getElementById(PecControlUniqueIDObtener() + "DiviMiListaNombreEdicionDropDownList_" + idMiLista);
    var objMiListaNombreEdicionHyperLink = document.getElementById(PecControlUniqueIDObtener() + "DivMiListaNombreEdicionHyperLink_" + idMiLista);

    objMiListaNombreLink.style.display = "none";
    objMiListaNombreEdicionTextBox.style.display = "";
    objMiListaNombreEdicionDropDownList.style.display = "";
    objMiListaNombreEdicionHyperLink.style.display = "";
    
    objMiListaNombre.focus();
    if( objMiListaNombre.value == "")
    {
        objMiListaNombre.value = '';
        objMiListaNombre.focus();
    }
    
    
    hashmethods[_MasterPages_Home.url + ".CargarComboListas"] = function(r) {
                if (ErrorEnResponse(r))
                {
                    return;
                }
                CargarComboListas(r.value, objMiListaNombreEdicionDropDownList);
            };
            
     _MasterPages_Home.CargarComboListas();
}


function copiarComboTextbox(textBoxId, listaComboId)
{
    textBoxId.value=listaComboId.value;

}

function MisListasEliminar(idMiLista)
{

    if (confirm("¿Está seguro que desea borrar la lista?"))
    {  

     var resultado ;
        
        hashmethods[_MasterPages_Home.url + ".EliminarLista"] = function(r){
                        if (ErrorEnResponse(r))
                        {
                            return;
                        }
                        MostrarMisListas();
        };
        resultado = _MasterPages_Home.EliminarLista(idMiLista);
        
    }      

}
function validarPerdidaDeFoco(texto, idMiLista)
{

    var objMiListaNombreEdicionHyperLink = document.getElementById(PecControlUniqueIDObtener() + "MiListaNombreEdicionHyperLink_" + idMiLista);
    //if (document.activeElement  != texto && (document.activeElement  != objMiListaNombreEdicionHyperLink || texto.value == ""))
    //TODO: Con Firefox no funciona el document.activeElement.
    if (texto.value.length < 1)
    {
        alert('Debe ingresar un nombre para la lista.');
        texto.focus();
    }
}


function CargarComboListas(nombreListas, dropDownList)
{
    var nombres = nombreListas.split(',');

    for(var i=0; i<(nombres.length-1); i++)
    {
        AddToOptionList(dropDownList, nombres[i], nombres[i]);
    
    }  

}


function AddToOptionList(OptionList, OptionValue, OptionText) {
   // Add option to the bottom of the list
   OptionList[OptionList.length] = new Option(OptionText, OptionValue);
}

function MiListaNombreModificacionGrabar(idMiLista, miListaSinNombreLeyenda)
{
    var objMiListaNombreLinkTexto = document.getElementById(PecControlUniqueIDObtener() + "DivMiListaNombreLinkTexto_" + idMiLista);
    var objMiListaNombre = document.getElementById(PecControlUniqueIDObtener() + "MiListaNombre_" + idMiLista);
    if(objMiListaNombre.value == "")
    {
        alert("Debe ingresar un nombre para la lista.");
        return;
    }
    var resultado;
    try
    {
            hashmethods[_MasterPages_Home.url + ".ExisteListaConNombre"] = function(result){
                         if (ErrorEnResponse(result))
                         {
                            return;
                         }
                         if(result.value == false ||  confirm("Existe una lista con el mismo nombre, ¿Desea reemplazarla?")) 
                         {
                         
                                hashmethods[_MasterPages_Home.url + ".MiListaNombreModificacion"] = function(r){
                                        if (ErrorEnResponse(r))
                                        {
                                            return;
                                        }
                                        
                                        ChangeTextMultipleExplorers(PecControlUniqueIDObtener() + "DivMiListaNombreLinkTexto_" + idMiLista, ((r.value != "") ? r.value : miListaSinNombreLeyenda));        
                                        var objMiListaNombreLink = document.getElementById(PecControlUniqueIDObtener() + "DivMiListaNombreLink_" + idMiLista);
                                        var objMiListaNombreEdicionTextBox = document.getElementById(PecControlUniqueIDObtener() + "DivMiListaNombreEdicionTextBox_" + idMiLista);
                                        var objMiListaNombreEdicionHyperLink = document.getElementById(PecControlUniqueIDObtener() + "DivMiListaNombreEdicionHyperLink_" + idMiLista);

                                        objMiListaNombreLink.style.display = "";
                                        objMiListaNombreEdicionTextBox.style.display = "none";
                                        objMiListaNombreEdicionHyperLink.style.display = "none";
                                        
                                        MostrarMisListas();
                                   };
                                resultado = _MasterPages_Home.MiListaNombreModificacion(idMiLista, objMiListaNombre.value);
                            }
            };
            res = _MasterPages_Home.ExisteListaConNombre(idMiLista, objMiListaNombre.value);
        
    }
    catch (ex)
    {
        ManejarError();
        return;
    }
}

//-----------------------------------------------------------------------------------------------------------------------------

function PecControlUniqueIDObtener()
{
    return PecControlUniqueID;
}


function PecActualizar(pecActualizarFuncion, idElemento, pecTablaOrden, pecTablaElementoOrden, pecOpcion, textoBusqueda, idMenu, idPromo,
                        idPECListaCompraParametro, idPedido, sortDirection, sortExpresion, paginacion, paginaActual, idMiLista,
                        visualizarFotosArticulos)
{
    var resultado;
    try
    {
        hashmethods[_MasterPages_Home.url + ".PecActualizar"] = function (r){
            
            var parent = document.getElementById('divCentral');
                parent.removeChild(document.getElementById(idElemento));
                var div = document.createElement('div');
                div.id = idElemento;
                div.innerHTML = r.value;
                parent.appendChild(div);
                 
        };
        resultado = _MasterPages_Home.PecActualizar(pecActualizarFuncion, PecControlUniqueIDObtener(), pecTablaOrden,
                                                    pecTablaElementoOrden, pecOpcion, textoBusqueda, idMenu, idPromo,
                                                    idPECListaCompraParametro, idPedido, sortDirection, sortExpresion, paginacion,
                                                    paginaActual, idMiLista , visualizarFotosArticulos);
        if (ErrorEnResponse(resultado))
        {
            return;
        }
       
    }
    catch (ex)
    {
        ManejarError();
        return;
    }
}

//-----------------------------------------------------------------------------------------------------------------------------

//origen: 1 = Lista de articulos
//        2 = Elemento artículo
//        3 = Mostrar artículo

function Compra_CambioArticuloFuncion(objCantidadArticulo)
{
    objCantidadArticulo.setAttribute("cma", "S");
}

function Compra_CambioArticulo(controlID)
{
    Compra_CambioArticuloFuncion(document.getElementById("ca_" + controlID));
}

function Compra_ActualizarCantidadAComprarConsultaObtenerFuncion(objCantidadArticulo, controlID, eliminarArticulo)
{
    var ret = null;
    if (eliminarArticulo)
    {
        objCantidadArticulo.setAttribute("cma", "S");
        objCantidadArticulo.value = 0;
    }
    
    if (objCantidadArticulo.getAttribute("cma") == "S")
    {       
        var cantidad = ConvertirNumero(objCantidadArticulo.value);
        if (cantidad.EsNumero)
        {
            objCantidadArticulo.value = cantidad.Valor;
            if (cantidad.Valor < 0)
                objCantidadArticulo.value = 0;
            else if (cantidad.Valor > 999)
                objCantidadArticulo.value = 1;

            var artIda = document.getElementById("dla_" + objCantidadArticulo.attributes["ida"].value);
            var descripcionLarga = "";
            if (typeof artIda != "undefined" && artIda != null)
            {
                // Dante 23/04/2009
                // Elimino la descripcion del post de datos para la carga de articulos
                // para que el post sea mas pequeño y en los casos de muchos articulos viajen menos datos
                // descripcionLarga = document.getElementById("dla_" + objCantidadArticulo.attributes["ida"].value).innerHTML;
                descripcionLarga = " ";                
            }
            
            var actualizarCantidadAComprarConsulta = new Array();
            
            actualizarCantidadAComprarConsulta[0] = objCantidadArticulo.attributes["ida"].value;
            actualizarCantidadAComprarConsulta[1] = objCantidadArticulo.value;
            actualizarCantidadAComprarConsulta[2] = descripcionLarga;
            actualizarCantidadAComprarConsulta[3] = objCantidadArticulo.attributes["pva"].value;
            actualizarCantidadAComprarConsulta[4] = objCantidadArticulo.attributes["pa"].value;
            actualizarCantidadAComprarConsulta[5] = controlID;
            
            ret = actualizarCantidadAComprarConsulta;        
        }
    }
    else
    {
        ret = "";
    }
    return ret
}

function Compra_ActualizarCantidadAComprarConsultaObtener(controlID, eliminarArticulo)
{
    var objCantidadArticulo = document.getElementById("ca_" + controlID);
    return Compra_ActualizarCantidadAComprarConsultaObtenerFuncion(objCantidadArticulo, controlID, eliminarArticulo)
}

function ImagenCarritoVacioUrl()
{
    return document.getElementById(PecControlUniqueIDObtener() + "ImagenCarritoVacioUrl").value;
}

function ImagenCarritoLlenoUrl()
{
    return document.getElementById(PecControlUniqueIDObtener() + "ImagenCarritoLlenoUrl").value;
}

function AgregarConCantidadDefault(origen, controlID)
{
    var textBox = document.getElementById("ca_" + controlID);
    if (textBox)
    {
        if((textBox.title == textBox.value) && textBox.value != 0)
        {
            textBox.value ++;
            Compra_CambioArticuloFuncion(textBox);
        }
        if (textBox.value == 0)
        {
            if((textBox.title == '')||(textBox.title == textBox.value)){
                textBox.value = 1;
                Compra_CambioArticuloFuncion(textBox);
            }else{
                textBox.value = 0;
                Compra_CambioArticuloFuncion(textBox);
            }
        }
        if((textBox.title == '') && textBox.value != 0)
        {
            Compra_CambioArticuloFuncion(textBox);
        }
        
        textBox.title = textBox.value        
    }
    return CCA(origen, controlID);
}


//Compra_ComprarArticulo
function CCA(origen, controlID)
{
    if (!IsAllowRequestArticulo())
    {
        return;
    }
    if (busy())
    {
        var actualizarCantidadAComprarConsultas = new Array();        
        var actualizarCantidadAComprarConsulta = Compra_ActualizarCantidadAComprarConsultaObtener(controlID, false);
        if (actualizarCantidadAComprarConsulta != null)
        {
            if( actualizarCantidadAComprarConsulta != "")
            {
                SetRequestingArticulo();
                actualizarCantidadAComprarConsultas[0] = actualizarCantidadAComprarConsulta;
                Compra_ActualizarCarrito(origen, actualizarCantidadAComprarConsultas, false);
                
            }
        }
        else
        {
            alert("La cantidad ingresada es incorrecta");
        }
        idle();
    }
}

//recarga el combo con todos los articulos
//y actualiza el subtotal y los puntos discoplus
function RecargarCarrito(actualizarCarritoResponse)
{
    //Recargo el carrito                                                          
    Compra_LlenarCarrito(actualizarCarritoResponse.value.CarritoArticulosVisualizables);
    
    //Actualizo subtotal del carrito
    ChangeTextMultipleExplorers(lblSubtotalId, " $ " + actualizarCarritoResponse.value.Subtotal);
    
    //Actualizo los puntos disco plus
    ChangeTextMultipleExplorers(lblPuntosId, actualizarCarritoResponse.value.PuntosDiscoPlus);
}

function ActualizarCarritoFuncionResponse(mensaje, descripcionImporte, ajaxResponse)
{
    this.Mensaje = mensaje;
    this.DescripcionImporte = descripcionImporte;
    this.AjaxResponse = ajaxResponse;
}

function Compra_ActualizarCantidadArticulo(objCantidadArticulo, cantidadIngresada)
{
    //Si el articulo es de misListas, no se modifican los valores con respecto al carrito
    if(typeof objCantidadArticulo.getAttribute("ml") == "undefined"  || objCantidadArticulo.getAttribute("ml")  == null)
    {
        //Actualizo el valor
        objCantidadArticulo.value = cantidadIngresada;   
        objCantidadArticulo.title = cantidadIngresada;                                                                  
        //Actualizo la propiedad CantidadModificada
        objCantidadArticulo.setAttribute("cma", "N");                                        
        //Cambio la imagen del carro.                                
        var objImagenCarro = document.getElementById(PecControlUniqueIDObtener() + "ImagenCarro_" + objCantidadArticulo.attributes["idc"].value);

        if (typeof objImagenCarro != "undefined" && objImagenCarro != null)
        {
            objImagenCarro.src = ((cantidadIngresada > 0) ? ImagenCarritoLlenoUrl() : ImagenCarritoVacioUrl());                                
        }
    }
}


function Compra_ActualizarCarritoFuncion(origen, actualizarCantidadAComprarConsultas, vaciarCarrito, objCantidadArticuloMostrar, controlID)
{
    var actualizarCarritoFuncionResponse = new ActualizarCarritoFuncionResponse("", "");
    if (actualizarCantidadAComprarConsultas.length > 0)
    {
        var actualizarCarritoResponse; 
        var result;
        try
        {  
            hashmethods[_MasterPages_Home.url + ".Compra_ActualizarCarrito"] = function(r) {
                var actualizarCarritoFuncionResponse = new ActualizarCarritoFuncionResponse("", "");
                 
                actualizarCarritoFuncionResponse.AjaxResponse = r;
                if (r.error == null)
                {
                    if (r.value.Mensaje.length > 0)
                    {
                        //Muestro el mensaje
                        alert(r.value.Mensaje);
                    }
                    //recargar carrito y subtotales
                    RecargarCarrito(r);
                                                            
                    if (r.value.ControlIDs != "")
                    {
                        //Recorro todos los artículos modificados
                        for(var i = 0; i < r.value.ControlIDs.length; i++)
                        {
                            var objCantidadArticulo;
                            var controlID = r.value.ControlIDs[i];
                            if (origen == 1 || origen == 2)
                            {
                                //Cambio el estilo y obtengo la cantidad modificada
                                objCantidadArticulo = document.getElementById("ca_" + controlID);
                                objCantidadArticulo.className = "form5";
                                //Actualizo la propiedad modificado del artículo.
                                
                                //Si no es de Mis Listas lo pongo en N
                                if(typeof objCantidadArticulo.getAttribute("ml") == "undefined"  || objCantidadArticulo.getAttribute("ml")  == null)
                                {
                                    objCantidadArticulo.setAttribute("cma", "N");
                                }
                                
                                //Cambio la imagen del carro.
                                var objImagenCarro = document.getElementById(PecControlUniqueIDObtener() + "ImagenCarro_" + controlID);
                                
                                if (typeof objImagenCarro != "undefined" && objImagenCarro != null)
                                {
                                    objImagenCarro.src = ((objCantidadArticulo.value > 0) ? ImagenCarritoLlenoUrl() : ImagenCarritoVacioUrl());
                                }
                            }
                            else
                            {
                                //Cambio la imagen del carro.
                                var objCantidadArticulo = objCantidadArticuloMostrar;
                                //Cambio el modificado.
                                objCantidadArticulo.setAttribute("cma","N");               
                                var objImagenCarro = popup.document.getElementById(PecControlUniqueIDObtener() + "ImagenCarro_" + controlID);
                                if(objImagenCarro == null)
                                {
	                                var objImagenCarro = popup.document.getElementById("ImagenCarro_" + controlID);
                                }
                                objImagenCarro.src = ((objCantidadArticulo.value > 0) ? ImagenCarritoLlenoUrl() : ImagenCarritoVacioUrl());
                                //Cambio el importe.
                                var objImporte = popup.window.document.getElementById("Importe_" + controlID);
                                objImporte.innerHTML = r.value.DescripcionImporteUltimo;
                                
                            }
                            //Actualizo la propiedad cantidad modificada y el valor de cantidad articulo de los controles que corresponden al mismo artículo que
                            //el modificado.
                            var inputs = document.forms["aspnetForm"][objCantidadArticulo.name];
                            if(inputs.length == null)
                            {
                                //Hay un solo control con ese nombre.
                                if (origen == 3)
                                {
                                    //Actualizó desde ArticuloMostrar, por la tanto no es el control desde el que se actualizó: actualizo el control.
                                    Compra_ActualizarCantidadArticulo(inputs, objCantidadArticulo.value);
                                }
                            }
                            else
                            {
                                ///Hay más de un control con ese nombre: los recorro y aactualizo.
                                for(var j = 0; j < inputs.length; j++)
                                {
                                    if (inputs[j].id != objCantidadArticulo.id || origen == 3)
                                    {
                                        //No es el control desde el que se modificó porque tiene otro id o porque se actualizó desde ArticuloMostrar: actualizo el control.
                                        Compra_ActualizarCantidadArticulo(inputs[j], objCantidadArticulo.value);
                                    }
                                }
                            }                                      
                        }
                    }

                    if (vaciarCarrito)
                    {
                        //Actualizo el pec
                        DivCentralAsignarHtml(r.value.PecHome);                        
                    }
                    for(var i = 0 ; i < actualizarCantidadAComprarConsultas.length ; i++)
                    {
                        var enCarrito = false;
                        var art = actualizarCantidadAComprarConsultas[i];
                        if(art[4]=='N') // no se agrego al carrito o no modifico la cantidad comprada
                        {
                            for(var j = 0 ; j< actualizarCarritoFuncionResponse.AjaxResponse.value.CarritoArticulosVisualizables.length ; j++)
                            {
                                ArtCarrito = actualizarCarritoFuncionResponse.AjaxResponse.value.CarritoArticulosVisualizables[j];
                                if(art[0]==ArtCarrito.Id) 
                                {
                                   enCarrito = true;
                                   var inputs = document.forms["aspnetForm"]["nca_" + ArtCarrito.Id];
                                   if(inputs.length == null)
                                    {
                                        //Hay un solo control con ese nombre.
                                        Compra_ActualizarCantidadArticulo(inputs, ArtCarrito.CantPedida);
                                    }
                                    else
                                    {
                                        ///Hay más de un control con ese nombre: los recorro y actualizo.
                                        for(var k = 0; k < inputs.length; k++)
                                        {
                                            Compra_ActualizarCantidadArticulo(inputs[k], ArtCarrito.CantPedida);
                                        }
                                    }       
                                }
                            }
                            if(!enCarrito)
                            {
                                var inputs = document.forms["aspnetForm"]["nca_" + art[0]];
                                if(inputs!=undefined)
                                {
                                    if(inputs.length == null)
                                    {
                                        //Hay un solo control con ese nombre.
                                        Compra_ActualizarCantidadArticulo(inputs, 0);
                                    }
                                    else
                                    {
                                        ///Hay más de un control con ese nombre: los recorro y actualizo.
                                        for(var j = 0; j < inputs.length; j++)
                                        {
                                            Compra_ActualizarCantidadArticulo(inputs[j], 0);
                                        }
                                    }
                                }    
                            }  
                        }
                    }

                    actualizarCarritoFuncionResponse.Mensaje = r.value.Mensaje;
                    actualizarCarritoFuncionResponse.DescripcionImporte = r.value.DescripcionImporteUltimo;
                    return actualizarCarritoFuncionResponse;
                }
            }      
            result = _MasterPages_Home.Compra_ActualizarCarrito(ParsearArrayDeArrays(actualizarCantidadAComprarConsultas),
                                                                            vaciarCarrito);
        }
        catch (ex)
        {
        }           
    }
    else
    {
        ResetRequestingArticulo();
        return actualizarCarritoFuncionResponse;
    }
}

function Compra_LlenarCarrito(coleccion)
{
    hashmethods[_MasterPages_Home.url + ".ObtenerHtmlCarrito"] = function(r){
        if (ErrorEnResponse(r))
         {
            return;
          }
          document.getElementById(divCarritoId).innerHTML = r.value;
          ResetRequestingArticulo();
    };
    
    _MasterPages_Home.ObtenerHtmlCarrito();


//                  
//    var control = document.getElementById(lbCarritoId);
//    control.options.length = 0;
//    if (coleccion != null)
//    {         
//        for (var i = 0; i < coleccion.length; ++i)
//        {                
//            control.options[control.options.length] = new Option(eval("coleccion[i].DescripcionCompleta"), coleccion[i].Id);                          
//        }
//    }
//    
//    //carrito vacio
//    if (coleccion.length == 0)
//    {
//        control.options[0] = new Option(CarritoVacioLeyenda);
//    }
}

function Compra_ActualizarCarrito(origen, actualizarCantidadAComprarConsultas, vaciarCarrito)
{
    var actualizarCarritoFuncionResponse = Compra_ActualizarCarritoFuncion(origen, actualizarCantidadAComprarConsultas, vaciarCarrito, null);
}

function esNumerico(elem)
{
	var numericExpression = /^[0-9]+$/;
	if(elem.match(numericExpression))
		return true;
	else
	    return false;
	
}

function TrimString(String) 
{
    while (String.substring(0,1) == ' ')
    {
        String = String.substring(1, String.length);
    }
    while (String.substring(String.length-1, String.length) == ' ')
    {
        String = String.substring(0,String.length-1);
    }
    return String;
}


function Compra_AumentarCantidadAComprarFuncion(objCantidadArticulo)
{    
    var mensaje = "";
    var cantidad = TrimString(objCantidadArticulo.value);
    if (cantidad == "")
        cantidad = "0"
    if (esNumerico(cantidad))
    {
        var obj = ConvertirNumero(cantidad);
        objCantidadArticulo.value = ++obj.Valor;
        if (objCantidadArticulo.value < 0 || objCantidadArticulo.value > 999)
            objCantidadArticulo.value = 1;
        Compra_CambioArticuloFuncion(objCantidadArticulo);
    }
    else
    {
        mensaje = "Debe ser númerico";
    }
    
    return mensaje
}

function Compra_DisminuirCantidadAComprarFuncion(objCantidadArticulo)
{

 var mensaje = "";
    var cantidad = TrimString(objCantidadArticulo.value);
    if (cantidad == "")
        cantidad = "0"
    if (esNumerico(cantidad))
    {
        var obj = ConvertirNumero(cantidad);
        objCantidadArticulo.value = --obj.Valor;
        if (objCantidadArticulo.value < 0)
            objCantidadArticulo.value = 0;
       
        Compra_CambioArticuloFuncion(objCantidadArticulo);
    }
    else
    {
        mensaje = "Debe ser númerico";
    }
    
    return mensaje
}

//Compra_AumentarCantidadAComprar
function CACAC(controlID)
{

    if (!IsAllowRequestArticulo())
    {
        return;
    }
    
    var mensaje = Compra_AumentarCantidadAComprarFuncion(document.getElementById("ca_" + controlID));
    
    if (mensaje.length > 0)
    {
        alert(mensaje);
    }
}

function deshabilitarTextboxesCantidad(textboxesEnabled)
{
    controlPadre = document.getElementById(divCarritoId);
    var controles = controlPadre.getElementsByTagName("input");
    var i;
    for (i=0;i<controles.length;i++)
    {
        
        if (controles[i].type == "text")
        {
            var textbox = controles[i];
            textbox.disabled = textboxesEnabled;
        }
    }
}

//Compra_DisminuirCantidadAComprar
function CDCAC(controlID)
{    
    if (!IsAllowRequestArticulo())
    {
        return;
    }
    var mensaje = Compra_DisminuirCantidadAComprarFuncion(document.getElementById("ca_" + controlID));
    if (mensaje.length > 0)
    {
        alert(mensaje);
    }
}

function EliminarProducto(controlID)
{    
    var objTextBox = document.getElementById("ca_" + controlID);
    objTextBox.value = 0;
    Compra_CambioArticuloFuncion(objTextBox);
    CCA(2, controlID);
}

function Compra_GrabarObservacionFuncion(idArticulo, observacion)
{
    return _MasterPages_Home.Compra_GrabarObservacion(idArticulo, observacion);
}

function Compra_InputActualizarCantidadAComprarConsultaObtener(input, eliminarArticulo)
{
    var actualizarCantidadAComprarConsulta = null;
    var prefijo = "ca_";
    if (input.id.length > prefijo.length)
    {
        if (input.id.substr(0, prefijo.length) == prefijo)
        {
            var controlID = input.id.substr(prefijo.length, input.id.length - prefijo.length);            
            actualizarCantidadAComprarConsulta = Compra_ActualizarCantidadAComprarConsultaObtener(controlID, eliminarArticulo);                     
        }
    }
    return actualizarCantidadAComprarConsulta;
}

function Compra_ComprarArticulos(vaciarCarrito)
{
    if (busy())
    {
        var actualizarCantidadAComprarConsultas = new Array();       
        var inputs = document.getElementsByTagName("input")
        var iActualizarCantidadAComprarConsultas = 0;
        for (var iInputs = 0; iInputs < inputs.length; iInputs++)
        {        
            var actualizarCantidadAComprarConsulta = Compra_InputActualizarCantidadAComprarConsultaObtener(inputs[iInputs], vaciarCarrito);                
            if (actualizarCantidadAComprarConsulta != null && actualizarCantidadAComprarConsulta != "")
            {
                actualizarCantidadAComprarConsultas[iActualizarCantidadAComprarConsultas] = actualizarCantidadAComprarConsulta;
                iActualizarCantidadAComprarConsultas++;
            }
        }
        Compra_ActualizarCarrito(1, actualizarCantidadAComprarConsultas, vaciarCarrito);
        idle();
    }
}

function Compra_ComprarTodo()
{
    Compra_ComprarArticulos(false);
}

function Compra_VaciarTodo()
{    
    if (confirm("¿Está seguro de borrar el contenido del carrito?"))
    {        
        Compra_ComprarArticulos(true);
    }
}

function ValidarIngresoCaja()
{
    if (busy())
    {
        try
        {    
            hashmethods[_MasterPages_Home.url + ".ValidarIngresoCaja"] = ValidarIngresoCaja_callback;
            var resultado = _MasterPages_Home.ValidarIngresoCaja();
        }
        catch (ex)
        {
            alert(ex.description);
        }    
    }
}

function ValidarIngresoCaja_callback(r)
{
    try
    {
        if (r.value != "")
        {
            alert(r.value);
            idle();
        }
        else
        {
            document.getElementById(ibCajaClientId).click();
        }
    }
    catch (ex)
    {
		alert(ex.description);
    }
}


function HTMLVolver()
{
    document.location.href = document.location.href;
}
function ConvertirALista()
{
        var resultado ;
        hashmethods[_MasterPages_Home.url + ".ConvertirALista"] = function(r){
                        if (ErrorEnResponse(r))
                        {
                            return;
                        }
                        if(r.value == false)
                        {
                            alert("Para crear una lista, debe ingresar artículos en el carrito.");
                        }
                        else
                        {
                            MostrarMisListas(0);
                        }    
                        
                           
        };
        resultado = _MasterPages_Home.ConvertirALista();
          
}


function ComprasExpress()
{
    if (busy())
    {
        var resultado;
        try
        {
            hashmethods[_MasterPages_Home.url + ".MostrarComprasExpress"] = function(r){
                           if (ErrorEnResponse(r))
                           {
                               return;
                           }
                           if(r.value == "false")
                            {
                                alert("Para utilizar Compras Express debe haber pedidos realizados previamente.");
                            }
                            else
                            {
                                DivCentralAsignarHtml(r.value);
                                MostrarBannersPublicidadSector(11);
                            }                        
                   };
            resultado = _MasterPages_Home.MostrarComprasExpress();
        }
        catch (ex)
        {
            alert(ex.description);
            ManejarError();
            return;
        }
        
        idle();
    }
}


function MostrarBannersPublicidadGondola(idMenu)
{   
    MostrarBannersPublicidadLateralGondola(idMenu);
    MostrarBannersPublicidadCabeceraGondola(idMenu);
}

//muestra los banners de publicidad asociado a la gondola
function MostrarBannersPublicidadLateralGondola(idMenu)
{
    if (busy())
    {
        var resultado;
        try
        {
            hashmethods[_MasterPages_Home.url + ".MostrarBannersPublicidadLateralGondola"] = MostrarBannersPublicidadLateralGondola_callback;
            resultado = _MasterPages_Home.MostrarBannersPublicidadLateralGondola(idMenu);          
        }
        catch (ex)
        {
            ManejarError();
            return;
        }
    }
}

//muestra los banners de publicidad asociado a la gondola
function MostrarBannersPublicidadCabeceraGondola(idMenu)
{
    if (busy())
    {
        var resultado;
        try
        {
            hashmethods[_MasterPages_Home.url + ".MostrarBannersPublicidadCabeceraGondola"] = MostrarBannersPublicidadCabeceraGondola_callback;
            resultado = _MasterPages_Home.MostrarBannersPublicidadCabeceraGondola(idMenu);          
        }
        catch (ex)
        {
            ManejarError();
            return;
        }
    }
}

function MostrarBannersPublicidadLateralGondola_callback(r)
{
    DivPublicidadLateralAsignarHtml(r.value);
        
    idle();
}

function MostrarBannersPublicidadCabeceraGondola_callback(r)
{
    DivPublicidadCabeceraAsignarHtml(r.value);
        
    idle();
}

function MostrarBannersPublicidadSector(idSector)
{
    MostrarBannersPublicidadLateralSector(idSector);
    MostrarBannersPublicidadCabeceraSector(idSector);
}

//muestra los banners de publicidad asociado a el carrito
function MostrarBannersPublicidadLateralSector(idSector)
{
    if (busy())
    {        
        var resultado;
        try
        {
            hashmethods[_MasterPages_Home.url + ".MostrarBannersPublicidadLateralSector"] = MostrarBannersPublicidadLateralSector_callback;
            resultado = _MasterPages_Home.MostrarBannersPublicidadLateralSector(idSector);          
        }
        catch (ex)
        {
            ManejarError();
            return;
        }
    }
}

//muestra los banners de publicidad asociado a el carrito
function MostrarBannersPublicidadCabeceraSector(idSector)
{
    if (busy())
    {        
        var resultado;
        try
        {
            hashmethods[_MasterPages_Home.url + ".MostrarBannersPublicidadCabeceraSector"] = MostrarBannersPublicidadCabeceraSector_callback;
            resultado = _MasterPages_Home.MostrarBannersPublicidadCabeceraSector(idSector);          
        }
        catch (ex)
        {
            ManejarError();
            return;
        }
    }
}

function MostrarBannersPublicidadLateralSector_callback(r)
{
    DivPublicidadLateralAsignarHtml(r.value);
        
    idle();
}

function MostrarBannersPublicidadCabeceraSector_callback(r)
{
    DivPublicidadCabeceraAsignarHtml(r.value);
        
    idle();
}


function DivPublicidadLateralAsignarHtml(html)
{
    try
    {
        if (typeof html != "undefined" && html != null)
        {
            var divBannersPublicidadLateral = document.getElementById(divBannersPublicidadLateralId);
            divBannersPublicidadLateral.innerHTML = html;
           
        }
    }
    catch(ex)
    {
        alert(ex.description);
    }
}

function DivPublicidadCabeceraAsignarHtml(html)
{
    try
    {
        if (typeof html != "undefined" && html != null)
        {
            var divBannersPublicidadCabecera = document.getElementById(divBannersPublicidadCabeceraId);
            divBannersPublicidadCabecera.innerHTML = html;
           
        }
    }
    catch(ex)
    {
        alert(ex.description);
    }
}